﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Text.RegularExpressions;

namespace PucLib
{
    public class Control
    {
        public List<Ramo> Ramos { get; set; }
        public Control()
        {
            Ramos = new List<Ramo>();
        }

        public void CargarRamos(String path)
        {
            char[] separador = {'\n'};
            char[] comma = {','};
            foreach (String s in Directory.GetFiles(path))
            {
                if(s.EndsWith(".txt")){
                Ramo r = new Ramo();
                Ramos.Add(r);
                TextReader tr = new StreamReader(s);
                String todo = tr.ReadToEnd();
                List<String> separado = todo.Split(separador).ToList();

                foreach (String linea in separado)
                {
                   
                    if (linea.StartsWith("Nombre: "))
                    {
                        r.Nombre = linea.Substring(7);
                        
                    }

                    if (linea.StartsWith("Sigla: "))
                    {
                        r.Sigla = linea.Substring(6);
                    }

                    if (linea.StartsWith("1")||linea.StartsWith("2")||linea.StartsWith("3")||linea.StartsWith("4")||linea.StartsWith("5")||linea.StartsWith("6")||linea.StartsWith("7")||linea.StartsWith("8")||linea.StartsWith("9")||linea.StartsWith("10")||linea.StartsWith("12")||linea.StartsWith("13")||linea.StartsWith("14")||linea.StartsWith("15"))
                    {
                        Seccion c = new Seccion();
                        List<String> sec = linea.Split(comma).ToList();

                        int contador = 0;

                        foreach (string p in sec)
                        {
                            if (contador == 0)
                            {
                                
                            }
                            if (contador == 1)
                            {
                                c.Profesor = p;
                            }

                            else
                            {
                                int dia = 0;
                                int hora = 0;
                                if (p.StartsWith("L"))
                                {
                                    dia = 1;
                                }
                                if (p.StartsWith("M"))
                                {
                                    dia = 2;
                                }
                                if (p.StartsWith("W"))
                                {
                                    dia = 3;
                                }
                                if (p.StartsWith("J"))
                                {
                                    dia = 4;
                                }
                                if (p.StartsWith("V"))
                                {
                                    dia = 5;
                                }

                                if (p.StartsWith("S"))
                                {
                                    dia = 6;
                                }


                                if (contador == 0)
                                {
                                }

                                if (contador != 0)
                                {
                                    hora = Int32.Parse( p[1]+"");


                                    Modulo m = new Modulo(dia, hora,r.Nombre);


                                    c.AgregarModulo(dia, hora);
                                }
                                
                            }
                            contador++;
                        }
                        r.Secciones.Add(c);

                    }
                    
                }



            }
                
                
            }


        }


        public List<Ramo> GetRamos()
        {
            return Ramos;
        }










    }
}
